﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using BLL;

namespace WebService_RentaCar
{
    /// <summary>
    /// Summary description for webServiceAuto
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class webServiceAuto : System.Web.Services.WebService
    {

        [WebMethod]
        public DataSet devolverAutos()
        {

            getValuesWS objgetValuesWS = new getValuesWS();
            return objgetValuesWS.listaAutos();


        }

        [WebMethod]
        public string insertarAutos(string vin, string placa, int codigoModelo, int codigoMarca,
        int codigoEstilo, int codigoEstado, DateTime creacionVehiculo, DateTime ingresoVehiculoAgencia, int cantidad)
        {

            getValuesWS objgetValuesWS = new getValuesWS();
            objgetValuesWS.vin = vin;
            objgetValuesWS.placa = placa;
            objgetValuesWS.codigoModelo = codigoModelo;
            objgetValuesWS.codigoMarca = codigoMarca;
            objgetValuesWS.codigoEstilo = codigoEstilo;
            objgetValuesWS.codigoEstado = codigoEstado;
            objgetValuesWS.creacionVehiculo = creacionVehiculo;
            objgetValuesWS.ingresoVehiculoAgencia = ingresoVehiculoAgencia;
            objgetValuesWS.cantidad = cantidad;

            return objgetValuesWS.ingresaAutos();

        }

        [WebMethod]
        public string actualizarAutos(int codigoAuto, string vin, string placa, int codigoModelo, int codigoMarca,
        int codigoEstilo, int codigoEstado,DateTime creacionVehiculo, DateTime ingresoVehiculoAgencia,int cantidad)
        {

            getValuesWS objgetValuesWS = new getValuesWS();
            objgetValuesWS.codigoAuto = codigoAuto;
            objgetValuesWS.vin = vin;
            objgetValuesWS.placa = placa;
            objgetValuesWS.codigoModelo = codigoModelo;
            objgetValuesWS.codigoMarca = codigoMarca;
            objgetValuesWS.codigoEstilo = codigoEstilo;
            objgetValuesWS.codigoEstado = codigoEstado;
            objgetValuesWS.creacionVehiculo = creacionVehiculo;
            objgetValuesWS.ingresoVehiculoAgencia = ingresoVehiculoAgencia;
            objgetValuesWS.cantidad = cantidad;



            return objgetValuesWS.actualizaAutos(); 

        }

        [WebMethod]
        public string eliminarAutos(int codigoAuto)
        {

            getValuesWS objgetValuesWS = new getValuesWS();
            objgetValuesWS.codigoAuto = codigoAuto;



            return objgetValuesWS.eliminaAutos();

        }


        [WebMethod]
        public DataSet editarAutos(int codigoAuto)
        {

            getValuesWS objgetValuesWS = new getValuesWS();

            objgetValuesWS.codigoAuto = codigoAuto;
            return objgetValuesWS.editaAutos();


        }
        
        // "Facade"
        private class getValuesWS
        {

            #region Propiedades
            public int codigoAuto { get; set; }
            public string vin { get; set; }
            public string placa { get; set; }
            public int codigoModelo { get; set; }
            public int codigoMarca { get; set; }
            public int codigoEstilo { get; set; }
            public int codigoEstado { get; set; }
            public DateTime creacionVehiculo { get; set; }
            public DateTime ingresoVehiculoAgencia { get; set; }
            public int cantidad { get; set; }
            public string estado { get; set; }
            #endregion

            public DataSet listaAutos()
            {
                try
                {
                    AutosC objAutos = new AutosC();
                    return objAutos.cargaAuto();

                }
                catch (Exception)
                {
                    return null;
                }

            }

            public string ingresaAutos()
            {
                try
                {

                    AutosC objAutos = new AutosC();
                    objAutos.vin = vin;
                    objAutos.placa = placa;
                    objAutos.codigoModelo = codigoModelo;
                    objAutos.codigoMarca = codigoMarca;
                    objAutos.codigoEstilo = codigoEstilo;
                    objAutos.codigoEstado = codigoEstado;
                    objAutos.creacionVehiculo = creacionVehiculo;
                    objAutos.ingresoVehiculoAgencia = ingresoVehiculoAgencia;
                    objAutos.cantidad = cantidad;
                    
                    estado = objAutos.insertarAuto();

                    return estado;

                }
                catch (Exception)
                {
                    return "Error no Controlado";
                }

            }

            public string actualizaAutos()
            {
                try
                {

                    AutosC objAutos = new AutosC();
                    objAutos.codigoAuto = codigoAuto;
                    objAutos.vin = vin;
                    objAutos.placa = placa;
                    objAutos.codigoModelo = codigoModelo;
                    objAutos.codigoMarca = codigoMarca;
                    objAutos.codigoEstilo = codigoEstilo;
                    objAutos.codigoEstado = codigoEstado;
                    objAutos.creacionVehiculo = creacionVehiculo;
                    objAutos.ingresoVehiculoAgencia = ingresoVehiculoAgencia;
                    objAutos.cantidad = cantidad;
                    
                    estado = objAutos.actualizarAuto();

                    return estado;

                }
                catch (Exception)
                {
                    return "Error no Controlado";
                }

            }

            public string eliminaAutos()
            {
                try
                {
                    AutosC objAutos = new AutosC();
                    objAutos.codigoAuto = codigoAuto;
                    estado = objAutos.eliminarAuto();

                    return estado;

                }
                catch (Exception)
                {
                    return "Error no Controlado";
                }

            }

            public DataSet editaAutos()
            {
                try
                {
                    AutosC objAutos = new AutosC();

                    objAutos.codigoAuto = codigoAuto;
                    return objAutos.editarAuto();

                }
                catch (Exception)
                {
                    return null;
                }

            }
        }


    }
}
